using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using database;
using objetos;
using publico;

namespace dados
{
	#region TB_CONTA_PAGAR
	/// <summary>
	/// This object represents the properties and methods of a TB_CONTA_PAGAR.
	/// </summary>
	public class DAL_TB_CONTA_PAGAR
	{		
	
		/// <summary>
		/// Incluir via aplicacao
		/// </summary>	
		public int Incluir(OBJ_TB_CONTA_PAGAR obj)
		{
			try
			{
				DAO_DATABASE db = new DAO_DATABASE();
				DataSet ds = new DataSet();
				List<string> lista = new List<string>();		
	
	 
				db.CreateParameter("@id_empresa", SqlDbType.Int, obj.id_empresa);				
				lista.Add("@id_empresa");				
				db.CreateParameter("@id_conta_contabil", SqlDbType.Int, obj.id_conta_contabil);				
				lista.Add("@id_conta_contabil");				
				db.CreateParameter("@id_tipo_especie", SqlDbType.Int, obj.id_tipo_especie);				
				lista.Add("@id_tipo_especie");				
				db.CreateParameter("@id_banco_conta_corrente", SqlDbType.Int, obj.id_banco_conta_corrente);				
				lista.Add("@id_banco_conta_corrente");				
				db.CreateParameter("@id_cadastro", SqlDbType.Int, obj.id_cadastro);				
				lista.Add("@id_cadastro");				
				db.CreateParameter("@id_centro_custo", SqlDbType.Int, obj.id_centro_custo);				
				lista.Add("@id_centro_custo");
                db.CreateParameter("@documento", SqlDbType.VarChar, obj.documento);				
				lista.Add("@documento");				
				db.CreateParameter("@descricao", SqlDbType.VarChar, obj.descricao);				
				lista.Add("@descricao");				
				db.CreateParameter("@parcela", SqlDbType.Int, obj.parcela);				
				lista.Add("@parcela");				
				db.CreateParameter("@valor_parcela", SqlDbType.Decimal, obj.valor_parcela);				
				lista.Add("@valor_parcela");				
				db.CreateParameter("@valor_desconto", SqlDbType.Decimal, obj.valor_desconto);				
				lista.Add("@valor_desconto");				
				db.CreateParameter("@valor_juro", SqlDbType.Decimal, obj.valor_juro);				
				lista.Add("@valor_juro");				
				db.CreateParameter("@valor_multa", SqlDbType.Decimal, obj.valor_multa);				
				lista.Add("@valor_multa");				
				db.CreateParameter("@valor_pago", SqlDbType.Decimal, obj.valor_pago);				
				lista.Add("@valor_pago");				
				db.CreateParameter("@valor_total", SqlDbType.Decimal, obj.valor_total);				
				lista.Add("@valor_total");				
				db.CreateParameter("@valor_saldo", SqlDbType.Decimal, obj.valor_saldo);				
				lista.Add("@valor_saldo");				
				db.CreateParameter("@dias_atraso", SqlDbType.Int, obj.dias_atraso);				
				lista.Add("@dias_atraso");				
				db.CreateParameter("@dt_emissao", SqlDbType.DateTime, obj.dt_emissao);				
				lista.Add("@dt_emissao");				
				db.CreateParameter("@dt_vencimento", SqlDbType.DateTime, obj.dt_vencimento);				
				lista.Add("@dt_vencimento");				
				db.CreateParameter("@dt_cartorio", SqlDbType.DateTime, obj.dt_cartorio);				
				lista.Add("@dt_cartorio");				
				db.CreateParameter("@dt_cancelamento", SqlDbType.DateTime, obj.dt_cancelamento);				
				lista.Add("@dt_cancelamento");				
				db.CreateParameter("@dt_pagamento", SqlDbType.DateTime, obj.dt_pagamento);				
				lista.Add("@dt_pagamento");				
				db.CreateParameter("@id_tipo_situacao_financeira", SqlDbType.Int, obj.id_tipo_situacao_financeira);				
				lista.Add("@id_tipo_situacao_financeira");				
				db.CreateParameter("@sit_pago", SqlDbType.Bit, obj.sit_pago);				
				lista.Add("@sit_pago");				
	
				string query = String.Format("Insert Into tb_conta_pagar ({0}) Values ({1}); SELECT SCOPE_IDENTITY()",  string.Join(",",lista.ToArray()).ToString().Replace("@", ""), string.Join(",",lista.ToArray()).ToString());
				ds = db.ExecuteQuery(query);
				
				return Convert.ToInt32(ds.Tables[0].Rows[0][0].ToString());
			}
			catch (Exception)
       		{
            	throw;
        	}
		}


		/// <summary>
		/// Update via aplicacao
		/// </summary>			
		public void Alterar(OBJ_TB_CONTA_PAGAR obj)
		{
			try
			{
				DAO_DATABASE db = new DAO_DATABASE();
				List<string> lista = new List<string>();
	
				db.CreateParameter("@id", SqlDbType.Int, obj.id);
				
	 
				db.CreateParameter("@id_empresa", SqlDbType.Int, obj.id_empresa);
				lista.Add("id_empresa = @id_empresa");
				db.CreateParameter("@id_conta_contabil", SqlDbType.Int, obj.id_conta_contabil);
				lista.Add("id_conta_contabil = @id_conta_contabil");
				db.CreateParameter("@id_tipo_especie", SqlDbType.Int, obj.id_tipo_especie);
				lista.Add("id_tipo_especie = @id_tipo_especie");
				db.CreateParameter("@id_banco_conta_corrente", SqlDbType.Int, obj.id_banco_conta_corrente);
				lista.Add("id_banco_conta_corrente = @id_banco_conta_corrente");
				db.CreateParameter("@id_cadastro", SqlDbType.Int, obj.id_cadastro);
				lista.Add("id_cadastro = @id_cadastro");
				db.CreateParameter("@id_centro_custo", SqlDbType.Int, obj.id_centro_custo);
				lista.Add("id_centro_custo = @id_centro_custo");
                db.CreateParameter("@documento", SqlDbType.VarChar, obj.documento);
				lista.Add("documento = @documento");
				db.CreateParameter("@descricao", SqlDbType.VarChar, obj.descricao);
				lista.Add("descricao = @descricao");
				db.CreateParameter("@parcela", SqlDbType.Int, obj.parcela);
				lista.Add("parcela = @parcela");
				db.CreateParameter("@valor_parcela", SqlDbType.Decimal, obj.valor_parcela);
				lista.Add("valor_parcela = @valor_parcela");
				db.CreateParameter("@valor_desconto", SqlDbType.Decimal, obj.valor_desconto);
				lista.Add("valor_desconto = @valor_desconto");
				db.CreateParameter("@valor_juro", SqlDbType.Decimal, obj.valor_juro);
				lista.Add("valor_juro = @valor_juro");
				db.CreateParameter("@valor_multa", SqlDbType.Decimal, obj.valor_multa);
				lista.Add("valor_multa = @valor_multa");
				db.CreateParameter("@valor_pago", SqlDbType.Decimal, obj.valor_pago);
				lista.Add("valor_pago = @valor_pago");
				db.CreateParameter("@valor_total", SqlDbType.Decimal, obj.valor_total);
				lista.Add("valor_total = @valor_total");
				db.CreateParameter("@valor_saldo", SqlDbType.Decimal, obj.valor_saldo);
				lista.Add("valor_saldo = @valor_saldo");
				db.CreateParameter("@dias_atraso", SqlDbType.Int, obj.dias_atraso);
				lista.Add("dias_atraso = @dias_atraso");
				db.CreateParameter("@dt_emissao", SqlDbType.DateTime, obj.dt_emissao);
				lista.Add("dt_emissao = @dt_emissao");
				db.CreateParameter("@dt_vencimento", SqlDbType.DateTime, obj.dt_vencimento);
				lista.Add("dt_vencimento = @dt_vencimento");
				db.CreateParameter("@dt_cartorio", SqlDbType.DateTime, obj.dt_cartorio);
				lista.Add("dt_cartorio = @dt_cartorio");
				db.CreateParameter("@dt_cancelamento", SqlDbType.DateTime, obj.dt_cancelamento);
				lista.Add("dt_cancelamento = @dt_cancelamento");
				db.CreateParameter("@dt_pagamento", SqlDbType.DateTime, obj.dt_pagamento);
				lista.Add("dt_pagamento = @dt_pagamento");
				db.CreateParameter("@id_tipo_situacao_financeira", SqlDbType.Int, obj.id_tipo_situacao_financeira);
				lista.Add("id_tipo_situacao_financeira = @id_tipo_situacao_financeira");
				db.CreateParameter("@sit_pago", SqlDbType.Bit, obj.sit_pago);
				lista.Add("sit_pago = @sit_pago");
	
				string query = String.Format("Update TB_CONTA_PAGAR Set {0} Where id = @id", string.Join(",",lista.ToArray()).ToString());
				db.ExecuteQuery(query);
			}
			catch (Exception)
       		{
            	throw;
        	}
		}	
		
		/// <summary>
		/// Delete viaaplicacao
		/// </summary>	
		public void Excluir(OBJ_TB_CONTA_PAGAR obj)
		{
			try
			{
				DAO_DATABASE db = new DAO_DATABASE();
				StringBuilder queryParameters = new StringBuilder();
				db.CreateParameter("@id", SqlDbType.Int, obj.id);
		
				string query = "Delete tb_conta_pagar Where id = @id";			
				db.ExecuteQuery(query);
			}
			catch (Exception)
       		{
            	throw;
        	}
		}
	
	
		/// <summary>
		/// Lista objeto
		/// </summary>						
		public List<OBJ_TB_CONTA_PAGAR> SelecionarLista()
    	{
        	try
        	{
				DAO_DATABASE db = new DAO_DATABASE();
				List<OBJ_TB_CONTA_PAGAR> lista = new List<OBJ_TB_CONTA_PAGAR>();
				OBJ_TB_CONTA_PAGAR obj = null;
				DataTable dt = new DataTable();
				DataSet ds = new DataSet();
				StringBuilder sb = new StringBuilder();
				sb.Append("Select * from  TB_CONTA_PAGAR ");
        
	            ds = db.ExecuteQuery(sb.ToString());
				
				if(!db.DataSetIsEmpty(ds))
				{
					dt = ds.Tables[0];
					
					foreach (DataRow dr in dt.Rows)
					{											
						obj = new OBJ_TB_CONTA_PAGAR();
						Set(obj,dr);
						lista.Add(obj);
		
					}
				}
				return lista;
        	}
        	catch (Exception)
       		{
            	throw;
        	}

    	}
		
		/// <summary>
		/// Set Objeto
		/// </summary>	
		private void Set(OBJ_TB_CONTA_PAGAR obj,DataRow dr)
		{
			obj.id = Convert.ToInt32(dr["id"]);						
 
			obj.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString()) ;	
			obj.id_conta_contabil = Convert.ToInt32(dr["id_conta_contabil"].ToString()) ;	
			obj.id_tipo_especie = dr["id_tipo_especie"] == DBNull.Value ? (int?)null : Convert.ToInt32(dr["id_tipo_especie"].ToString()) ;	
			obj.id_banco_conta_corrente = Convert.ToInt32(dr["id_banco_conta_corrente"].ToString()) ;	
			obj.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString()) ;	
			obj.id_centro_custo = Convert.ToInt32(dr["id_centro_custo"].ToString()) ;	
			obj.documento = dr["documento"].ToString();	
			obj.descricao = dr["descricao"] == DBNull.Value ?  string.Empty : dr["descricao"].ToString() ;
			obj.parcela = Convert.ToInt32(dr["parcela"].ToString()) ;	
			obj.valor_parcela = dr["valor_parcela"] == DBNull.Value ?  0 : Convert.ToDecimal(dr["valor_parcela"].ToString()) ;
			obj.valor_desconto = dr["valor_desconto"] == DBNull.Value ?  0 : Convert.ToDecimal(dr["valor_desconto"].ToString()) ;
			obj.valor_juro = dr["valor_juro"] == DBNull.Value ?  0 : Convert.ToDecimal(dr["valor_juro"].ToString()) ;
			obj.valor_multa = dr["valor_multa"] == DBNull.Value ?  0 : Convert.ToDecimal(dr["valor_multa"].ToString()) ;
			obj.valor_pago = dr["valor_pago"] == DBNull.Value ?  0 : Convert.ToDecimal(dr["valor_pago"].ToString()) ;
			obj.valor_total = dr["valor_total"] == DBNull.Value ?  0 : Convert.ToDecimal(dr["valor_total"].ToString()) ;
			obj.valor_saldo = dr["valor_saldo"] == DBNull.Value ?  0 : Convert.ToDecimal(dr["valor_saldo"].ToString()) ;
			obj.dias_atraso = Convert.ToInt32(dr["dias_atraso"].ToString()) ;	
			obj.dt_emissao = dr["dt_emissao"] == DBNull.Value ? (DateTime?)null :  Convert.ToDateTime(dr["dt_emissao"].ToString()) ;						
			obj.dt_vencimento = dr["dt_vencimento"] == DBNull.Value ? (DateTime?)null :  Convert.ToDateTime(dr["dt_vencimento"].ToString()) ;						
			obj.dt_cartorio = dr["dt_cartorio"] == DBNull.Value ? (DateTime?)null :  Convert.ToDateTime(dr["dt_cartorio"].ToString()) ;						
			obj.dt_cancelamento = dr["dt_cancelamento"] == DBNull.Value ? (DateTime?)null :  Convert.ToDateTime(dr["dt_cancelamento"].ToString()) ;						
			obj.dt_pagamento = dr["dt_pagamento"] == DBNull.Value ? (DateTime?)null :  Convert.ToDateTime(dr["dt_pagamento"].ToString()) ;						
			obj.id_tipo_situacao_financeira = Convert.ToInt32(dr["id_tipo_situacao_financeira"].ToString()) ;	
			obj.sit_pago = Convert.ToBoolean(dr["sit_pago"].ToString()) ;
			
		}						
				
		/// <summary>
		/// Selecionar Objeto Por ID
		/// </summary>	
		public OBJ_TB_CONTA_PAGAR SelecionarObjetoPorId(int id)
		{
			try
			{
				DAO_DATABASE db = new DAO_DATABASE();
				OBJ_TB_CONTA_PAGAR obj = new OBJ_TB_CONTA_PAGAR();
				DataSet ds = new DataSet();				
				DataTable dt = new DataTable();
				db.CreateParameter("@id", SqlDbType.Int, id);
				ds = db.ExecuteQuery("SELECT * FROM tb_conta_pagar  Where id = @id");				
				
				if(!db.DataSetIsEmpty(ds))
				{
					dt = ds.Tables[0];
					
					foreach (DataRow dr in dt.Rows)
                	{
						obj = new OBJ_TB_CONTA_PAGAR();
						Set(obj,dr);																			
					}
					return obj;
					
				}
				else
				{
					return null;	
				}			
			}
			catch (Exception)
       		{
            	throw;
        	}
			
		}
					
		
		
		/// <summary>
		/// Lista objeto Parametro Where OrderBy
		/// </summary>							
		public List<OBJ_TB_CONTA_PAGAR> SelecionarLista(String Where, String OrderBy)
    	{
        	try
        	{
				DAO_DATABASE db = new DAO_DATABASE();
				OBJ_TB_CONTA_PAGAR obj = null;
				DataSet ds = new DataSet();
				DataTable dt = new DataTable();
				List<OBJ_TB_CONTA_PAGAR> lista = new List<OBJ_TB_CONTA_PAGAR>();
				
				StringBuilder sb = new StringBuilder();
				db.CreateParameter("@Where",SqlDbType.VarChar, Where );
				db.CreateParameter("@OrderBy", SqlDbType.VarChar, OrderBy );				
				
				sb.Append("SELECT * ");
				sb.Append(" FROM TB_CONTA_PAGAR");
				if(Where != string.Empty)				
				sb.Append(string.Format(" Where {0} ",Where));
				if(OrderBy != string.Empty)
				sb.Append(string.Format(" Order by {0}",OrderBy));
				
				ds = db.ExecuteQuery(sb.ToString());
				
				if(!db.DataSetIsEmpty(ds))
				{
					dt = ds.Tables[0];
					foreach (DataRow dr in dt.Rows)
					{						
						obj = new OBJ_TB_CONTA_PAGAR();
						Set(obj,dr);			
						lista.Add(obj);
					}
				}
				return lista;
        	}
        	catch (Exception)
       		{
            	throw;
        	}

    	}

		
		public DataSet Selecionar(String Where, String OrderBy, int PageIndex, int PageSize )
		{
				DAO_DATABASE db = new DAO_DATABASE();
				DataSet ds = new DataSet();
				
				StringBuilder sb = new StringBuilder();
				
				PageIndex = PageSize * PageIndex;
            	PageSize =  PageIndex + PageSize;
				
		      	if (OrderBy == string.Empty) OrderBy = "id";

            	sb.Append("SELECT * FROM ");
            	sb.Append(string.Format(" (SELECT ROW_NUMBER() OVER (ORDER BY {0}) AS RowNumber,",OrderBy));
           		sb.Append(" * FROM   tb_conta_pagar ");
				if (Where != string.Empty)
				{
					sb.Append(string.Format(" WHERE {0}", Where));
				}
				sb.Append(" ) query  ");
				sb.Append(string.Format(" WHERE RowNumber BETWEEN {0} + 1 and {1}; ",PageIndex,PageSize));

            	sb.Append("SELECT count(*) FROM tb_conta_pagar");
				if (Where != string.Empty)
				{
					sb.Append(string.Format(" WHERE {0}", Where));
				}
				ds = db.ExecuteQuery(sb.ToString());
				
				if (!db.DataSetIsEmpty(ds))
            	{
                publico.PUB_PAGINACAO.CalcularTotalDePaginas(Convert.ToDecimal(ds.Tables[1].Rows[0][0].ToString()));
            	}

				
            	return ds;
								
		}
				
								
		public DataSet Selecionar(String Where, String OrderBy)
        {
            DAO_DATABASE db = new DAO_DATABASE();
            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();

            sb.Append("Select * from  TB_CONTA_PAGAR ");
           if (Where != string.Empty)
            {
                db.CreateParameter("@Where", SqlDbType.VarChar, Where);
                sb.Append(string.Format(" Where  {0}",Where));
            }

            if (OrderBy != string.Empty)
            {
                db.CreateParameter("@OrderBy", SqlDbType.VarChar, OrderBy);
                sb.Append(string.Format(" Order By {0}", OrderBy));
            }

            ds = db.ExecuteQuery(sb.ToString());
            return ds;
        }		
		
		public DataSet Selecionar()
        {
            DAO_DATABASE db = new DAO_DATABASE();
            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();

            sb.Append("Select * from  TB_CONTA_PAGAR Order By id");            
            ds = db.ExecuteQuery(sb.ToString());
            return ds;
        }		
		
		
		public DataSet ListaCampos()
        {

            DAO_DATABASE db = new DAO_DATABASE();
            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT TABLE_NAME, ORDINAL_POSITION, ");
            sb.Append(" COLUMN_NAME, DATA_TYPE, IS_NULLABLE ");
            sb.Append(" FROM INFORMATION_SCHEMA.COLUMNS");
            sb.Append(" WHERE TABLE_NAME = 'tb_conta_pagar'");
            ds = db.ExecuteQuery(sb.ToString());

            return ds;

        }

		public DataSet DropdownList()
        {
            DAO_DATABASE db = new DAO_DATABASE();
            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();
			sb.Append("SELECT ");
			sb.Append(" id ");
		 		
				sb.Append(", id_empresa ");  				
				sb.Append(", id_conta_contabil ");  				
			sb.Append(" FROM tb_conta_pagar ");
            sb.Append(" ORDER BY id_empresa ");
            ds = db.ExecuteQuery(sb.ToString());

            // ds = db.ExecuteProcedure("USP_TB_CONTA_PAGAR_DROPDOWNLIST");  
            return ds;
        }

        public DataSet DropdownList(String Where)
        {
            DAO_DATABASE db = new DAO_DATABASE();
            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();
            db.CreateParameter("@Where", SqlDbType.VarChar, Where);
			sb.Append("SELECT ");
			sb.Append(" id ");
			
			sb.Append(", id_empresa ");  				

			sb.Append(", id_conta_contabil ");  				
			sb.Append(" FROM tb_conta_pagar ");
			sb.Append(string.Format(" WHERE {0} ",Where));
            sb.Append(" ORDER BY id_empresa ");
            ds = db.ExecuteQuery(sb.ToString());

            // ds = db.ExecuteProcedure("USP_TB_CONTA_PAGAR_DROPDOWNLIST");
            return ds;
        }
		
		  public DataSet DropdownList(String Where, String OrderBy)
        {
            DAO_DATABASE db = new DAO_DATABASE();
            DataSet ds = new DataSet();
            StringBuilder sb = new StringBuilder();
            db.CreateParameter("@Where", SqlDbType.VarChar, Where);
			sb.Append("SELECT ");
			sb.Append(" id ");
 				
			sb.Append(", id_empresa ");  				
			sb.Append(", id_conta_contabil ");  				
			sb.Append(" FROM tb_conta_pagar ");
			sb.Append(string.Format(" WHERE {0} ORDER BY {1}",Where,OrderBy));			
            ds = db.ExecuteQuery(sb.ToString());

            // ds = db.ExecuteProcedure("USP_TB_CONTA_PAGAR_DROPDOWNLIST");
            return ds;
        }

          public DataTable CriarDataTable()
          {
              DataTable table = new DataTable();
              table.Columns.Add("id", typeof(int));
        
              table.Columns.Add("id_empresa", typeof(int));
              table.Columns.Add("id_conta_contabil", typeof(int));
              table.Columns.Add("id_tipo_especie", typeof(int));
              table.Columns.Add("id_banco_conta_corrente", typeof(int));
              table.Columns.Add("id_cadastro", typeof(int));
              table.Columns.Add("id_centro_custo", typeof(int));
              table.Columns.Add("documento", typeof(string));
              table.Columns.Add("descricao", typeof(int));
              table.Columns.Add("parcela", typeof(int));
              table.Columns.Add("valor_parcela", typeof(decimal));
              table.Columns.Add("valor_desconto", typeof(decimal));
              table.Columns.Add("valor_juro", typeof(decimal));
              table.Columns.Add("valor_multa", typeof(decimal));
              table.Columns.Add("valor_pago", typeof(decimal));
              table.Columns.Add("valor_total", typeof(decimal));
              table.Columns.Add("valor_saldo", typeof(decimal));
              table.Columns.Add("dias_atraso", typeof(int));
              table.Columns.Add("dt_emissao", typeof(DateTime));
              table.Columns.Add("dt_vencimento", typeof(DateTime));
              table.Columns.Add("dt_cartorio", typeof(DateTime));
              table.Columns.Add("dt_cancelamento", typeof(DateTime));
              table.Columns.Add("dt_pagamento", typeof(DateTime));
              table.Columns.Add("id_tipo_situacao_financeira", typeof(int));
              table.Columns.Add("sit_pago", typeof(bool));
              return table;
          }

          public DataTable PreencheDataTable(DataTable dt, OBJ_TB_CONTA_PAGAR obj)
          {
              DataRow dr = dt.NewRow();
              dr["id"] = obj.id;
  
              dr["id_empresa"] = obj.id_empresa;
              dr["id_conta_contabil"] = obj.id_conta_contabil;
              dr["id_tipo_especie"] = obj.id_tipo_especie;
              dr["id_banco_conta_corrente"] = obj.id_banco_conta_corrente;
              dr["id_cadastro"] = obj.id_cadastro;
              dr["id_centro_custo"] = obj.id_centro_custo;
              dr["documento"] = obj.documento;
              dr["descricao"] = obj.descricao;
              dr["parcela"] = obj.parcela;
              dr["valor_parcela"] = obj.valor_parcela;
              dr["valor_desconto"] = obj.valor_desconto;
              dr["valor_juro"] = obj.valor_juro;
              dr["valor_multa"] = obj.valor_multa;
              dr["valor_pago"] = obj.valor_pago;
              dr["valor_total"] = obj.valor_total;
              dr["valor_saldo"] = obj.valor_saldo;
              dr["dias_atraso"] = obj.dias_atraso;
              dr["dt_emissao"] = obj.dt_emissao;
              dr["dt_vencimento"] = obj.dt_vencimento;
              dr["dt_cartorio"] = obj.dt_cartorio;
              dr["dt_cancelamento"] = obj.dt_cancelamento;
              dr["dt_pagamento"] = obj.dt_pagamento;
              dr["id_tipo_situacao_financeira"] = obj.id_tipo_situacao_financeira;
              dr["sit_pago"] = obj.sit_pago;
              dt.Rows.Add(dr);
              return dt;

          }

            /// <summary>
            /// Total Conta Pagar
            /// </summary>
            /// <param name="id_empresa"></param>
            /// <param name="id_pedido"></param>
            /// <param name="id_tipo_situacao_financeira"></param>
            /// <returns></returns>
          public OBJ_TB_CONTA_PAGAR TotalContaPagarPedido(int id_empresa, int id_pedido, int id_tipo_situacao_financeira)
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, p.id_pedido, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_pedido  as p on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_pedido where id_pedido = @id_pedido and id_empresa=@id_empresa)");
                  sb.Append(" and c.id_tipo_situacao_financeira = @id_tipo_situacao_financeira");
                  sb.Append(" group by c.id_empresa, c.id_cadastro, p.id_pedido");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_pedido", SqlDbType.Int, id_pedido);
                  db.CreateParameter("@id_tipo_situacao_financeira", SqlDbType.Int, id_tipo_situacao_financeira);

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }


        /// <summary>
        /// Total Conta Pagar
        /// </summary>
        /// <param name="id_empresa"></param>
        /// <param name="id_pedido"></param>
        /// <returns></returns>
          public OBJ_TB_CONTA_PAGAR TotalContaPagarPedido(int id_empresa, int id_pedido)
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, p.id_pedido, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_pedido  as p on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_pedido where id_pedido = @id_pedido and id_empresa=@id_empresa)");
                  sb.Append(" group by c.id_empresa, c.id_cadastro, p.id_pedido");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_pedido", SqlDbType.Int, id_pedido);
           

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }


           /// <summary>
           /// Total Conta Pagar
           /// </summary>
           /// <param name="id_empresa"></param>
           /// <param name="id_nf"></param>
           /// <param name="id_tipo_situacao_financeira"></param>
           /// <returns></returns>
          public OBJ_TB_CONTA_PAGAR TotalContaPagarNF(int id_empresa, int id_nf, int id_tipo_situacao_financeira)
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, p.id_pedido, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_pedido  as p on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_nf where id_nf = @id_nf and id_empresa=@id_empresa)");
                  sb.Append(" and c.id_tipo_situacao_financeira = @id_tipo_situacao_financeira");
                  sb.Append(" group by c.id_empresa, c.id_cadastro, p.id_pedido");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_nf", SqlDbType.Int, id_nf);
                  db.CreateParameter("@id_tipo_situacao_financeira", SqlDbType.Int, id_tipo_situacao_financeira);

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }


          public decimal TotalLancadoNF(int id_nf)
          {
              DAO_DATABASE db = new DAO_DATABASE();
              DataSet ds = new DataSet();
              DataTable dt = new DataTable();
              StringBuilder sb = new StringBuilder();
              decimal valor = 0;
              sb.Append(" select isnull(SUM(valor_parcela),0) from tb_conta_pagar where id in  ( select id_conta_pagar from tb_conta_pagar_nf where id_nf = @id_nf) ");
              db.CreateParameter("@id_nf", SqlDbType.Int, id_nf);

              ds = db.ExecuteQuery(sb.ToString());

              if (!db.DataSetIsEmpty(ds))
              {

                  valor = Convert.ToDecimal(ds.Tables[0].Rows[0][0].ToString());

              }

              return valor;

          }

        /// <summary>
        /// Total Conta Pagar
        /// </summary>
        /// <param name="id_empresa"></param>
        /// <param name="id_nf"></param>
        /// <returns></returns>
          public OBJ_TB_CONTA_PAGAR TotalContaPagarNF(int id_empresa, int id_nf )
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, f.id_nf, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_nf  as f on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_nf where id_nf = @id_nf and id_empresa=@id_empresa)");
                  sb.Append(" group by c.id_empresa, c.id_cadastro, f.id_nf");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_nf", SqlDbType.Int, id_nf);
             

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }

        /// <summary>
        /// Total Conta Pagar
        /// </summary>
        /// <param name="id_empresa"></param>
        /// <param name="id_ordem_servico"></param>
        /// <param name="id_tipo_situacao_financeira"></param>
        /// <returns></returns>
          public OBJ_TB_CONTA_PAGAR TotalContaPagarOrdemServico(int id_empresa, int id_ordem_servico, int id_tipo_situacao_financeira)
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, p.id_pedido, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_pedido  as p on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_ordem_servico where id_ordem_servico = @id_ordem_servico and id_empresa=@id_empresa)");
                  sb.Append(" and c.id_tipo_situacao_financeira = @id_tipo_situacao_financeira");
                  sb.Append(" group by c.id_empresa, c.id_cadastro, p.id_pedido");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_ordem_servico", SqlDbType.Int, id_ordem_servico);
                  db.CreateParameter("@id_tipo_situacao_financeira", SqlDbType.Int, id_tipo_situacao_financeira);

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }


        /// <summary>
        /// Total Conta Pagar
        /// </summary>
        /// <param name="id_empresa"></param>
        /// <param name="id_ordem_servico"></param>
        /// <returns></returns>
          public OBJ_TB_CONTA_PAGAR TotalContaPagarOrdemServico(int id_empresa, int id_ordem_servico )
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, p.id_pedido, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_pedido  as p on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_ordem_servico where id_ordem_servico = @id_ordem_servico and id_empresa=@id_empresa)");              
                  sb.Append(" group by c.id_empresa, c.id_cadastro, p.id_pedido");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_ordem_servico", SqlDbType.Int, id_ordem_servico);
                

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }

          public OBJ_TB_CONTA_PAGAR TotalContaPagarNFS(int id_empresa, int id_nfs, int id_tipo_situacao_financeira)
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, p.id_pedido, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_pedido  as p on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_nfs where id_nfs = @id_nfs and id_empresa=@id_empresa)");
                  sb.Append(" and c.id_tipo_situacao_financeira = @id_tipo_situacao_financeira");
                  sb.Append(" group by c.id_empresa, c.id_cadastro, p.id_pedido");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_nfs", SqlDbType.Int, id_nfs);
                  db.CreateParameter("@id_tipo_situacao_financeira", SqlDbType.Int, id_tipo_situacao_financeira);

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }


          public OBJ_TB_CONTA_PAGAR TotalContaPagarNFS(int id_empresa, int id_nfs )
          {
              try
              {
                  DAO_DATABASE db = new DAO_DATABASE();
                  StringBuilder sb = new StringBuilder();
                  DataSet ds = new DataSet();
                  DataTable dt = new DataTable();
                  OBJ_TB_CONTA_PAGAR o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();

                  sb.Append("select c.id_empresa, c.id_cadastro, p.id_pedido, isnull(sum(valor_pago),0) as valor_pago,");
                  sb.Append(" isnull(sum(c.valor_parcela),0) as valor_parcela, ");
                  sb.Append(" isnull(sum(c.valor_desconto),0) as valor_desconto, ");
                  sb.Append(" isnull(sum(c.valor_juro),0) as valor_juro, ");
                  sb.Append(" isnull(sum(c.valor_multa),0) as valor_multa, ");
                  sb.Append(" isnull(sum(c.valor_total),0) as valor_total, ");
                  sb.Append(" isnull(sum(c.valor_saldo),0) as valor_saldo ");
                  sb.Append(" from tb_conta_pagar as c ");
                  sb.Append(" inner join tb_conta_pagar_pedido  as p on c.id = p.id_conta_pagar and c.id_empresa = p.id_empresa");
                  sb.Append(" where c.id in (select id_conta_pagar from tb_conta_pagar_nfs where id_nfs = @id_nfs and id_empresa=@id_empresa)");              
                  sb.Append(" group by c.id_empresa, c.id_cadastro, p.id_pedido");

                  db.CreateParameter("@id_empresa", SqlDbType.Int, id_empresa);
                  db.CreateParameter("@id_nfs", SqlDbType.Int, id_nfs);
                

                  ds = db.ExecuteQuery(sb.ToString());

                  if (!db.DataSetIsEmpty(ds))
                  {
                      dt = ds.Tables[0];

                      foreach (DataRow dr in dt.Rows)
                      {
                          o_tb_conta_pagar = new OBJ_TB_CONTA_PAGAR();
                          o_tb_conta_pagar.id_empresa = Convert.ToInt32(dr["id_empresa"].ToString());
                          o_tb_conta_pagar.id_cadastro = Convert.ToInt32(dr["id_cadastro"].ToString());
                          o_tb_conta_pagar.valor_desconto = Convert.ToDecimal(dr["valor_desconto"].ToString());
                          o_tb_conta_pagar.valor_juro = Convert.ToDecimal(dr["valor_juro"].ToString());
                          o_tb_conta_pagar.valor_multa = Convert.ToDecimal(dr["valor_multa"].ToString());
                          o_tb_conta_pagar.valor_pago = Convert.ToDecimal(dr["valor_pago"].ToString());
                          o_tb_conta_pagar.valor_parcela = Convert.ToDecimal(dr["valor_parcela"].ToString());
                          o_tb_conta_pagar.valor_saldo = Convert.ToDecimal(dr["valor_saldo"].ToString());
                          o_tb_conta_pagar.valor_total = Convert.ToDecimal(dr["valor_total"].ToString());
                      }

                  }
                  return o_tb_conta_pagar;
              }
              catch (Exception)
              {

                  throw;
              }

          }

	}
	#endregion
}

